package com.example.Arithmetic.Lettcode;

/**
 * 日期：2024/1/2
 * 时间：9:46
 * 描述：打家劫舍，偷完一个需要跳过一个房间偷下一个，求能偷的最大值
 */
public class E01Lettcode198 {
    public int rob(int[] nums) {
        if (nums.length==1){
            return nums[0];
        }
        int[] dp=new int[nums.length];
        dp[0]=nums[0];
        dp[1]=Integer.max(nums[0],nums[1]);
        for (int i = 2; i <nums.length ; i++) {
            dp[i]=Integer.max(dp[i-2]+nums[i],dp[i-1]);
        }
        return dp[nums.length-1];
    }

    public static void main(String[] args) {
        E01Lettcode198 code = new E01Lettcode198();
        System.out.println(code.rob(new int[]{10, 7, 9, 3, 1,5}));
        System.out.println(code.rob(new int[]{2, 1, 1, 2}));
    }
}

